package thread;

public class SynchronizedBuffer implements Buffer {
    private int valor = -1;
    private boolean bufferOcupado = false;
    @Override
    public synchronized void set(int valor) throws InterruptedException {
        while(bufferOcupado){System.out.println("Buffer ocupado ou cheio Produtor aguarde");
        wait();}
        System.out.print("Produziu este valor = " + valor);
        this.valor = valor;
        bufferOcupado = true;
        notifyAll();
    }
    @Override
    public synchronized int get() throws InterruptedException {
        while(!bufferOcupado){System.out.println("Buffer desocupado ou vazio Consumidor aguarde");
        wait();}
        System.err.print("Consumiu este valor = " + valor);
        bufferOcupado = false;
        notifyAll();
        return valor;
    }
}
